package bean

import (
	"d-serv-go/server/core/consts"
)

type PageBean struct {
	*Bean
}

func NewPageBean() *PageBean {
	return &PageBean{
		Bean: NewBean(""),
	}
}

func (page *PageBean) GetPages(pages int8) *PageBean {
	page.Set(consts.PAGE_PAGES, pages)
	return page
}

func (page *PageBean) GetShowNum() int {
	return page.GetInt(consts.PAGE_SHOWNUM, 50)
}

func (page *PageBean) SetPages(pages int) *PageBean {
	page.Set(consts.PAGE_PAGES, pages)
	return page
}

func (page *PageBean) SetShowNum(showNum int) *PageBean {
	page.Set(consts.PAGE_SHOWNUM, showNum)
	return page
}

func (page *PageBean) SetAllNum(allNum int) *PageBean {
	page.Set(consts.PAGE_ALLNUM, allNum)
	pages := 1
	if allNum > 0 {
		showNum := page.GetShowNum()
		if allNum%showNum == 0 {
			pages = allNum / showNum
		} else {
			pages = allNum/showNum + 1
		}
	}
	page.SetPages(pages)
	return page
}

func (page *PageBean) GetOrder() string {
	return page.GetStr("ORDER", "")
}

func (page *PageBean) SetNowPage(nowPage int) *PageBean {
	page.Set(consts.PAGE_NOWPAGE, nowPage)
	return page
}

func (page *PageBean) GetNowPage() int {
	return page.GetInt(consts.PAGE_NOWPAGE)
}
